/*=============================================================================

  SONY CAM HAL MODULE

  FILE: hw_sony_cam_echo.c
  
  DESCRIPTION

    SONY CAM HAL Module

  Copyright (c) DaeSung Engineering Inc. All rights reserved.

=============================================================================*/
/*=============================================================================

  EDIT HISTORY

  ---------  -------  -------------------------------------------------------
    when        who          what, where, why
  ---------  -------  -------------------------------------------------------
   13/10/15   jyko         Initial version

=============================================================================*/


 /*=============================================================================
  HEADER INCLUSION
=============================================================================*/
#include "hw_sony_cam_mod.h"
#include <string.h>
#include <stdio.h>


/*=============================================================================
  CONSTANT DEFINITION
=============================================================================*/

/*=============================================================================
  LOCALIZED FUNCTION DEFINITION
=============================================================================*/
static boolean recv_is_tx_avail(tx_s *tx);
static boolean recv_is_rx_avail(rx_s *rx);

/*=============================================================================
  EXTERNALIZED FUNCTION DEFINITION
=============================================================================*/
boolean scom_recv_echo(ccs_s *ccs)
{
	rx_s			*rx = ccs->rx;
	tx_s			*tx = ccs->tx;
	dword		type;
	int32		j, je, len_tx, len_rx, len;
	
	if(recv_is_tx_avail(tx) == FALSE)
		return	FALSE;

	if(recv_is_rx_avail(rx) == FALSE)
		return	FALSE;

	type = tx_type(tx);

	len_tx = strlen(tx->ptr);
	len_rx = rx->len_recv;
	len = MIN(len_tx, len_rx);
	
	je = len - 1; // except ETX1,2

	for(j=0; j<len; j++)
	{
		if((*(tx->ptr+j)) != (*(rx->ptr+j)))
		{
			return	FALSE;
		}
	}
	
	return	TRUE;
}


/*=============================================================================
  LOCALIZED FUNCTION INPLEMENTATION
=============================================================================*/


/*--- END OF hw_sony_cam_echo.c ---*/
